Package de.yaams.maker.helper.gui

Source Code of de.yaams.maker.helper.gui.Loading

/**
*
*/
package de.yaams.maker.helper.gui;

import java.awt.BorderLayout;
import java.awt.Cursor;
import java.awt.GridLayout;

import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JWindow;

import de.yaams.maker.helper.SwingHelper;
import de.yaams.maker.helper.gui.icons.IconCache;
import de.yaams.maker.helper.language.I18N;

/**
* Show a scree for loading
*
* @author abt
*
*/
public class Loading {

  protected JWindow loading;
  protected JProgressBar bar;
  protected JLabel icon, label;
  protected int act, max;

  /**
   * show the loading bar
   *
   * @param max
   *            , max steps, if 0 indimet
   * @param icon
   *            , main icon, text will set be show()
   * @param thread
   *            , if given, add a stop button to break the thread
   */
  public Loading(int max, String icon, final Thread thread) {
    this.max = max;

    // frame
    loading = new JWindow();

    // contain icon & all
    final JPanel info = new JPanel(new BorderLayout());
    // contain bar & label
    final JPanel content = new JPanel(new BorderLayout());

    // icon
    this.icon = new JLabel(IconCache.get(icon, 32));
    this.icon.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));

    // label
    label = new JLabel("YAams loading");
    label.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2));

    // build
    info.add(this.icon, BorderLayout.WEST);
    content.add(label, BorderLayout.NORTH);

    bar = new JProgressBar(0, max);
    if (max == 0)
      bar.setIndeterminate(true);
    bar.setBorder(BorderFactory.createEmptyBorder(0, 2, 2, 2));
    bar.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
    content.add(bar, BorderLayout.SOUTH);

    info.add(content, BorderLayout.CENTER);
    info.setBorder(BorderFactory.createEtchedBorder());
    // Integration.styleLauncher(info);

    // add stopping?
    if (thread != null) {
      info.add(YFactory.tb(I18N.t("Abbrechen"), "close", new AE() {

        @Override
        public void run() {
          thread.interrupt();

        }
      }), BorderLayout.EAST);
    }

    loading.setLayout(new GridLayout(1, 1));
    loading.add(info);
    // loading.pack();
    loading.setSize(300, 40);
    loading.setLocationRelativeTo(null);
    loading.setVisible(true);

  }

  /**
   * Set text
   *
   * @param message
   */
  public void show(final String message) {
    new SwingHelper() {

      @Override
      public void run() {
        bar.setValue(act);
        act++;
        label.setText(message);
      }
    };
  }

  /**
   * Set text
   *
   * @param message
   */
  public void show(final String message, final String icon) {
    new SwingHelper() {

      @Override
      public void run() {
        show(message);
        Loading.this.icon.setIcon(IconCache.get(icon, 32));

      }
    };
  }

  /**
   * Close it
   */
  public void exit() {
    new SwingHelper() {

      @Override
      public void run() {
        loading.setVisible(false);
        loading.dispose();
        loading = null;

      }
    };
  }

  /**
   * @param max
   *            the max to set
   */
  public void setMax(int max) {
    this.max = max;
    bar.setIndeterminate((max == 0));
    bar.setMaximum(max);
  }
}
TOP

Related Classes of de.yaams.maker.helper.gui.Loading

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.